/******************************************************************************
 * @file       messagedialog.h
 * @brief      提示框
 *****************************************************************************/
#ifndef MESSAGEDIALOG_H
#define MESSAGEDIALOG_H

#include <QQuickItem>
#include <QQuickWidget>
#include <QJsonObject>

#include "GLOBAL.h"

class MessageDialog : public QQuickWidget
{
    Q_OBJECT
    QML_ELEMENT

public:
    explicit MessageDialog();
    ~MessageDialog();

signals:
    void boxMessageChanged(QString msg); // 窗口信息变化
    void titleChanged(QString title); // 窗口标题变化

private slots:
    void onTitleChanged(QString title); // 窗口标题变化槽函数
    void onBoxMessageChanged(); // 窗口信息变化槽函数

public:
    QQmlContext* getContext() const; // 获取qmlcontext
    QObject* getRootObject() const; // 获取rootObject

    void setBoxMessage(QString msg); // 设置提示信息
    QString getBoxMessage() const; // 获取提示信息

    // 设置窗口
    static void messageBox(QWidget *parent,
                           Global::BoxType boxType,
                           QString title,
                           QString text,
                           int standardButton = Global::StandardButton::Submit);

private:
    QString _boxMessage = "";
    QString _title = ""; // 窗口标题
    static MessageDialog *_msgDialog; // 静态成员
};

#endif // MESSAGEDIALOG_H
